﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>DI_EDIT</title>
<meta http-equiv="Content-Type" Content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../styles/styles.css">
<script language="javascript" src='../../links.js' type="text/javascript"></script>
</head>
<body>

<h1>DI_EDIT</h1>
<div class=navbar>
<a href="../../index.html">главная</a> |
<a href="index.html">элементы диалога</a> |
<a href="../index.html">Dialog API</a>
</div>

<div class=shortdescr>
Элемент диалога <code>DI_EDIT</code> описывает поле ввода.
</div>

<pre class=syntax>
struct FarDialogItem
{
  enum FARDIALOGITEMTYPES Type = <b>DI_EDIT</b>
  intptr_t X1                  = <b>X1</b>
  intptr_t Y1                  = <b>Y</b>
  intptr_t X2                  = <b>X2</b>
  intptr_t Y2                  = <b>Y</b> (равен значению Y1)
  const wchar_t *History       = <b>History</b>
  FARDIALOGITEMFLAGS Flags     = <b>Flags</b>
  const wchar_t *Data          = <b>редактируемый текст</b>
};
</pre>

<p class=note><img src="../../../images/note.gif" alt="Внимание!" width="10" height="10"> Внимание!</p>
<UL class=note><LI>Приведено схематичное изображение структуры; полное описание структуры <a href="../../structures/fardialogitem.html">см. здесь</a>.</LI></UL>

<h3>History</h3>
<div class=descr>
Адрес текстовой строки, которая будет использоваться как внутреннее название истории редактирования (см. также флаг <a href="../flags/dif_history.html">DIF_HISTORY</a>).
Если значение равно <code>NULL</code>, то поле ввода не имеет истории.</div>

<h3>Флаги</h3>
<div class=descr>
Для элемента <code>DI_EDIT</code> имеют значения следующие флаги:
<table class="cont">
<tr class="cont"><th class="cont" width="40%">Флаг</th><th class="cont" width="60%">Описание</th></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../flags/dif_defaultbutton.html">DIF_DEFAULTBUTTON</a></td>
<td class="cont" width="60%">флаг, означающий, что данный элемент диалога является "элементом по умолчанию"</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../flags/dif_focus.html">DIF_FOCUS</a></td>
<td class="cont" width="60%">определяет, что при показе диалога установить клавиатурный фокус ввода на данный элемент</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../flags/dif_editor.html">DIF_EDITOR</a></td>
<td class="cont" width="60%">последовательно определённые поля ввода группируются в редактор с возможностью вставки и удаления строк</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../flags/dif_history.html">DIF_HISTORY</a></td>
<td class="cont" width="60%">позволяет вести историю редактирования для поля ввода</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../flags/dif_manualaddhistory.html">DIF_MANUALADDHISTORY</a></td>
<td class="cont" width="60%">строка для истории редактирования не будет автоматически добавляться в историю по завершению работы диалога</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../flags/dif_uselasthistory.html">DIF_USELASTHISTORY</a></td>
<td class="cont" width="60%">начальное значение берётся из истории</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../flags/dif_editexpand.html">DIF_EDITEXPAND</a></td>
<td class="cont" width="60%">"расширять" переменные среды</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../flags/dif_editpath.html">DIF_EDITPATH</a></td>
<td class="cont" width="60%">строка ввода будет содержать имена реальных файловых объектов</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../flags/dif_disable.html">DIF_DISABLE</a></td>
<td class="cont" width="60%">элемент является недоступным</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../flags/dif_readonly.html">DIF_READONLY</a></td>
<td class="cont" width="60%">переводит строки редактирования в состояние "только для чтения"</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../flags/dif_selectonentry.html">DIF_SELECTONENTRY</a></td>
<td class="cont" width="60%">выделить  редактируемый текст при получении фокуса ввода</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../flags/dif_nofocus.html">DIF_NOFOCUS</a></td>
<td class="cont" width="60%">управляющий элемент не получает клавиатурный фокус ввода</td></tr>
</table>
</div>

<h3>События</h3>
<div class=descr>
<table class="cont">
<tr class="cont"><th class="cont" width="40%">Событие</th><th class="cont" width="60%">Описание</th></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../dmsg/dn_drawdlgitem.html">DN_DRAWDLGITEM</a></td>
<td class="cont" width="60%">начало отрисовки текстовой строки</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../dmsg/dn_ctlcolordlgitem.html">DN_CTLCOLORDLGITEM</a></td>
<td class="cont" width="60%">запрос цветовых атрибутов для отрисовки; <code>Param2</code>:
<pre>
<code>Colors[0]</code> - редактируемый текст
                (<a href="../../defs/farcolors.html#COL_WARNDIALOGEDIT">COL_WARNDIALOGEDIT</a> или <a href="../../defs/farcolors.html#COL_DIALOGEDIT">COL_DIALOGEDIT</a>)
<code>Colors[1]</code> - выделенный текст
                (<a href="../../defs/farcolors.html#COL_DIALOGEDITSELECTED">COL_DIALOGEDITSELECTED</a>)
<code>Colors[2]</code> - неизмененный текст (UnChanged)
                (<a href="../../defs/farcolors.html#COL_DIALOGEDITUNCHANGED">COL_DIALOGEDITUNCHANGED</a>)
<code>Colors[3]</code> - цвет символа для History
                (<a href="../../defs/farcolors.html#COL_DIALOGTEXT">COL_DIALOGTEXT</a>)</pre>
</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../dmsg/dn_controlinput.html">DN_CONTROLINPUT</a></td>
<td class="cont" width="60%">нажали клавиатурную клавишу или кликнули клавишей мыши</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../dmsg/dn_editchange.html">DN_EDITCHANGE</a></td>
<td class="cont" width="60%">текст изменён</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../dmsg/dn_killfocus.html">DN_KILLFOCUS</a></td>
<td class="cont" width="60%">элемент потерял фокус (при условии, что не используется флаг <a href="../flags/dif_nofocus.html">DIF_NOFOCUS</a>)</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../dmsg/dn_killfocus.html">DN_GOTFOCUS</a></td>
<td class="cont" width="60%">элемент получил фокус (при условии, что не используется флаг <a href="../flags/dif_nofocus.html">DIF_NOFOCUS</a>)</td></tr>
</table>
</div>

<h3>Замечания</h3>
<div class=descr>
Для определения, является ли текущий элемент диалога строкой ввода, в АПИ есть функция <code>IsEdit()</code>:
<pre class=code>
static __inline BOOL IsEdit(enum FARDIALOGITEMTYPES Type)
{
  switch (Type)
  {
    case DI_EDIT:
    case DI_FIXEDIT:
    case DI_PSWEDIT:
    case DI_COMBOBOX:
      return TRUE;
    default:
      return FALSE;
  }
}
</pre>
</div>

<div class=see>Смотрите также:</div>
<div class=seecont>
<a href="di_pswedit.html">DI_PSWEDIT</a>,
<a href="di_fixedit.html">DI_FIXEDIT</a>,
<a href="../../structures/fardialogitem.html">FarDialogItem</a>
</div>

</body>
</html>